User-Influenced Page Loading of Web Content

ABSTRACT

Methods and systems may provide for identifying a usage pattern for web content having a plurality of components and receiving a web response from a server, wherein the web response includes the web content. Additionally, a client-side override of the load order of the plurality of components may be conducted based on the usage pattern. In one example, a cookie is generated based on the usage pattern, wherein the cookie is used to conduct the client-side override.

BACKGROUND

Embodiments of the present invention generally relate to web content.More particularly, embodiments relate to user-influenced page loading ofweb content.

A typical web browsing experience may involve using a web browserrunning on a client device to request web pages from remote servers inresponse to user interactions with the web browser. A given web page mayhave, for example, various portlets, wherein certain the order in whichthe portlets of the page are loaded into the browser may be a functionof factors such as the page design and the network connectionspeed/quality. Certain portlets, however, may be of more interest to theend user than others. As a result, the end user may be forced to spendidle time waiting for the portlet of interest to load, which may have anegative impact on the browsing experience.

BRIEF SUMMARY

Embodiments may include a computer program product having a computerreadable storage medium and computer usable code stored on the computerreadable storage medium. If executed by a processor, the computer usablecode may cause a computer to identify a usage pattern for web contenthaving a plurality of components and receive a web response from aserver, wherein the web response is to include the web content. Thecomputer usable code, if executed, may also cause a computer to conducta client-side override of a load order of the plurality of componentsbased on the usage pattern.

Embodiments may also include a computer implemented method in which ausage pattern is identified for web content having a plurality ofcomponents, wherein the usage pattern includes one or more of auser-specific visitation history, a statistical visitation history, userrole data, time data, location data, attention area data, device typedata and browser type data. The method may also provide for generating acookie based on the usage pattern, storing the usage pattern to alearning repository, and receiving a web response from a server, whereinthe web response includes the web content. Additionally, the cookie maybe used to conduct a client-side override of a load order of theplurality of components, and the usage pattern may be updated in thelearning repository based on one or more subsequent accesses of the webcontent.

Embodiments may include a computer program product having a computerreadable storage medium and computer usable code stored on the computerreadable storage medium. If executed by a processor, the computer usablecode may cause a computer to identify a usage pattern for web contenthaving a plurality of components, wherein the usage pattern is toinclude one or more of a user-specific visitation history, a statisticalvisitation history, user role data, time data, location data, attentionarea data, device type data and browser type data. The computer usablecode may also cause a computer to generate a cookie based on the usagepattern, store the usage pattern to a learning repository, and receive aweb response from a server, wherein the web response is to include theweb content. Additionally, the computer usable code may cause a computerto use the cookie to conduct a client-side override of a load order ofthe plurality of components and update the usage pattern in the learningrepository based on one or more subsequent accesses of the web content.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

The various advantages of the embodiments of the present invention willbecome apparent to one skilled in the art by reading the followingspecification and appended claims, and by referencing the followingdrawings, in which:

FIG. 1 is a block diagram of an example of an approach to conductingclient-side overrides of load order according to an embodiment;

FIG. 2 is a block diagram of an example of an approach to conductingclient-side overrides of relative display position according to anembodiment;

FIG. 3 is a flowchart of an example of an approach to conductingclient-side overrides according to an embodiment; and

FIG. 4 is a block diagram of an example of a networking architectureaccording to an embodiment.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Referring now to FIG. 1, web content 10 (10 a-10 d) is shown, whereinthe web content 10 may represent a web page, portal, application, etc.,that may be sent to a client device in response to a web request fromthe client device (e.g., in a “pull” scenario) and/or in response toanother event/condition (e.g., in a “push” scenario). The web content 10may be sent from one or more servers (e.g., “server-side”) to the clientdevice (e.g., “client-side”) over a network connection that may bewired, wireless, or any combination thereof. The illustrated web content10 has a plurality of components such as, for example, widgets,portlets, gadgets, etc., wherein the components may have a naturaland/or predefined load order (e.g., default load order) that is afunction of the design of the web content, the speed and/or quality ofthe network connection to the client device, and so forth. In theillustrated example, the default load order would result in a firstcomponent 10 a being loaded in the browser first, a second component 10b being loaded in the browser second, a third component 10 c beingloaded in the browser third, and a fourth component 10 d being loaded inthe browser fourth. Other default load orders may also occur eithernaturally or by design.

Of particular note is that an end user of the client device may be mostinterested in a particular component such as, for example, the fourthcomponent 10 d. The default load order in such a case, however, mayforce the user to wait for the entire web page to be loaded in thebrowser before the end user may view and/or interact with the fourthcomponent 10 d. The illustrated approach uses information such as auser-specific visitation history 12, a statistical visitation history14, and so forth, with respect to the web content 10, to determine auser-influenced usage pattern 16 for the web content 10. The usagepattern 16 may include, for example, user role data (e.g.,administrator, business, personal), time data, location data, attentionarea (e.g., “heat map”) data, device type data, browser type data, andso forth. For example, the time data may indicate that certaincomponents of the web content 10 are of greater interest to the userthan other components at a particular time of day, week, year, etc.Similarly, the location data may indicate that certain components of theweb content 10 are of greater interest to the user than other componentswhen the client device is in a particular geographic location.

As will be discussed in greater detail, a client-side override of theload order of the web content 10 may be conducted based on the usagepattern 16. For example, the client-side override may cause the fourthcomponent 10 d to load in the browser first, the second component 10 bto load in the browser second, the first component 10 a to load in thebrowser third, and the third component 10 c to load in the browserfourth. The load order may be modified by adjusting the order in whichcomponents are requested from the server, adjusting the order in whichreceived components are displayed in the browser, instructing the serverto load the components in a particular order, and so forth, whereinvarious techniques such as cookies and/or document object model (DOM)parsing may be used to implement the adjustments and/or instructions. Asa result, the illustrated approach enables the end user to more quicklyview and/or interact with the content that is of greatest interest. Ofparticular note is that the server need not be aware of the client-sideoverride of the load order.

FIG. 2 demonstrates another example in which the web content 10 is sentto a client device for display in a browser. In the illustrated example,device type data 18 and/or browser type data 20 may be used in additionto the usage pattern 16 to override the relative display position of theplurality of components. Such an approach may be useful for smallerhandheld client devices such as, for example, smart phones, tablets,etc., that have a limited display area. In the illustrated example, theclient-side override causes the fourth component 10 d to be displayed atthe top of the browser interface, the second component 10 b to bedisplayed beneath the fourth component 10 d, the first component 10 a tobe displayed beneath the second component, and the third component 10 cto be displayed at the bottom of the browser interface.

FIG. 3 shows a method 22 of conducting client-side overrides.Illustrated processing block 24 provides for identifying a usage patternfor web content having a plurality of components. The components mayinclude, for example, widgets, portlets, gadgets, etc., or anycombination thereof. Block 24 may take into consideration a number offactors such as, for example, a user-specific visitation history, astatistical visitation history (e.g., crowd-based, demographic-based),user role data, time data, location data, attention area data, devicetype data, browser type data, and so forth. The usage pattern may bestored to a learning repository at block 26, wherein illustrated block28 generates and/or updates a cookie based on the usage pattern. Thecookie generation/update may also be based on an analysis of thelearning repository. For example, certain trends may be identified bymonitoring the visitation history over time (e.g., gradual increase ofinterest in a particular component, gradual decrease of interest inanother component, etc.), wherein those trends may be an output of thelearning repository analysis.

The web content may be received in a web response from one or moreservers at block 30. As already noted, the web response may beassociated with a previous web request from a client device, aserver-side event and/or condition, and so forth. Illustrated block 32determines whether a client-side override is to be bypassed. Thedetermination at block 32 may involve receiving configuration input viaa user input, retrieving previously provided configuration input, etc.,and using the configuration input to determine whether the client-sideoverride has been authorized. The configuration input may betime-specific, location-specific, device-specific, etc., or anycombination thereof. The configuration input may therefore take the formof one or more user preferences and/or settings related to the receivedweb content in particular, related to web content of a particular type,related to all web content, and so forth. If no bypass condition isdetected, illustrated block 34 uses the cookie to conduct a client-sideoverride of the load order for the components of the web content.

In one example, a set of relative weights may be determined for theplurality of components based on the usage pattern. Thus, an expressionsuch as the following may be used to obtain weighted results.

% of priority to display=weight_(—)1/(weight_(—)1+weight_(—)2+ . . .+weight_n).

where n is the number of components on the page/display

The relative weights may be stored to the cookie. Other techniques suchas DOM parsing may also be used to conduct the client-side override ofthe load order. Moreover, block 34 may provide for overriding therelative display position of the plurality of components based on thedevice type data, the browser type data, and so forth, as alreadydiscussed.

Turning now to FIG. 4, a networking architecture 36 is shown in which auser equipment (UE) device 38 (e.g., client device) is configured toreceive web content from one or more servers such as a server 40 via anetwork 42. In the illustrated example, the server 40 can have storedthereon hypertext markup language (HTML) and other markuplanguage-encoded content, as well as databases and applications such aswidgets, portlets, gadgets, etc., (e.g., web content). The network 42may itself include any suitable combination of servers, access points,routers, base stations, mobile switching centers, public switchingtelephone network (PSTN) components, etc., to facilitate communicationbetween the UE device 38 and the server 40. The status and/or conditionof the network 42 may impact the speed at which the web content isdelivered to the UE device 38, as well as the load order of the variouscomponents of the web content.

The UE device 38 may include a user influence module 44 configured toconduct client-side overrides of web component load orders and relativedisplay positions. More particularly, the user influence module 44 mayidentify usage patterns for web content having a plurality of componentsand receive web responses from the server 40, wherein the web responsesinclude the web content. In one example, the UE device also includes alearning repository to track and analyze usage patterns over time. Theuser influence module 44 may also conduct client-side overrides of loadorders of the components based on the usage patterns. In addition, theillustrated user influence module 44 may override relative displaypositions of the components based on factors such as device type,browser type, and so forth.

Techniques described herein may therefore enhance the web browsingexperience under varying network conditions by learning user behaviorand prioritizing the loading of web elements/components based on thelearned behavior. Moreover, any need to modify server elements or useweb content managers may be obviated due to the client-side nature ofthe techniques described herein. Additionally, the integrity of the webcontent rendering may be maintained as originally intended by the webdeveloper (e.g., all components may still be rendered, albeit in adifferent order).

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions. In addition, theterms “first”, “second”, etc. may be used herein only to facilitatediscussion, and carry no particular temporal or chronologicalsignificance unless otherwise indicated.

Those skilled in the art will appreciate from the foregoing descriptionthat the broad techniques of the embodiments of the present inventioncan be implemented in a variety of forms. Therefore, while theembodiments of this invention have been described in connection withparticular examples thereof, the true scope of the embodiments of theinvention should not be so limited since other modifications will becomeapparent to the skilled practitioner upon a study of the drawings,specification, and following claims.

We claim:
 1. A computer program product comprising: a computer readablestorage medium; and computer usable code stored on the computer readablestorage medium, where, if executed by a processor, the computer usablecode causes a computer to: identify a usage pattern for web contenthaving a plurality of components, wherein the usage pattern is toinclude one or more of a user-specific visitation history, a statisticalvisitation history, user role data, time data, location data, attentionarea data, device type data and browser type data; generate a cookiebased on the usage pattern; store the usage pattern to a learningrepository; receive a web response from a server, wherein the webresponse is to include the web content; use the cookie to conduct aclient-side override of a load order of the plurality of components; andupdate the usage pattern in the learning repository based on one or moresubsequent accesses of the web content.
 2. The computer program productof claim 1, wherein the computer usable code, if executed, causes acomputer to: determine relative weights for the plurality of componentsbased on the usage pattern; and store the relative weights to thecookie.
 3. The computer program product of claim 1, wherein the computerusable code, if executed, causes a computer to: receive configurationinput via a user interface; and determine whether to conduct theclient-side override based on the configuration input.
 4. The computerprogram product of claim 1, wherein the computer usable code, ifexecuted, causes a computer to override a relative display position ofthe plurality of components based on one or more of the device type dataand the browser type data.
 5. The computer program product of claim 1,wherein the client-side override is to be conducted with respect to theload order of one or more of a widget, a portlet and a gadget.
 6. Acomputer implemented method comprising: identifying a usage pattern forweb content having a plurality of components, wherein the usage patternincludes one or more of a user-specific visitation history, astatistical visitation history, user role data, time data, locationdata, attention area data, device type data and browser type data;generating a cookie based on the usage pattern; storing the usagepattern to a learning repository; receiving a web response from aserver, wherein the web response includes the web content; using thecookie to conduct a client-side override of a load order of theplurality of components; and updating the usage pattern in the learningrepository based on one or more subsequent accesses of the web content.7. The method of claim 6, further including: determining relativeweights for the plurality of components based on the usage pattern; andstoring the relative weights to the cookie.
 8. The method of claim 6,further including: receiving configuration input via a user interface;and determining whether to conduct the client-side override based on theconfiguration input.
 9. The method of claim 6, further includingoverriding a relative display position of the plurality of componentsbased on one or more of the device type data and the browser type data.10. The method of claim 6, wherein the client-side override is conductedwith respect to one or more of a widget, a portlet and gadget.
 11. Acomputer program product comprising: a computer readable storage medium;and computer usable code stored on the computer readable storage medium,where, if executed by a processor, the computer usable code causes acomputer to: identify a usage pattern for web content having a pluralityof components; receive a web response from a server, wherein the webresponse is to include the web content; and conduct a client-sideoverride of a load order of the plurality of components based on theusage pattern.
 12. The computer program product of claim 11, wherein thecomputer usable code, if executed, causes a computer to generate acookie based on the usage pattern, and wherein the cookie is to be usedto conduct the client-side override.
 13. The computer program product ofclaim 11, wherein the computer usable code, if executed, causes acomputer to store the usage pattern to a learning repository.
 14. Thecomputer program product of claim 13, wherein the computer usable code,if executed, causes a computer to update the usage pattern in thelearning repository based on one or more subsequent accesses of the webcontent.
 15. The computer program product of claim 11, wherein thecomputer usable code, if executed, causes a computer to determinerelative weights for the plurality of components based on the usagepattern, and wherein the relative weights are used to conduct theclient-side override.
 16. The computer program product of claim 11,wherein the computer usable code, if executed, causes a computer to:receive configuration input via a user interface; and determine whetherto conduct the client-side override based on the configuration input.17. The computer program product of claim 11, wherein the usage patternis to include one or more of a user-specific visitation history and astatistical visitation history.
 18. The computer program product ofclaim 11, wherein the usage pattern is to include one or more of userrole data, time data, location data, attention area data, device typedata and browser type data.
 19. The computer program product of claim18, wherein the computer usable code, if executed, causes a computer tooverride a relative display position of the plurality of componentsbased on one or more of the device type data and the browser type data.20. The computer program product of claim 11, wherein the client-sideoverride is to be conducted with respect to one or more of a widget, aportlet and a gadget.